package com.tencreat.domain.mall;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.tencreat.common.annotation.Excel;
import com.tencreat.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;


/**
 * 意见反馈对象 mall_feedback
 *
 * @author tencreat
 * @date 2021-08-19
 */
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@AllArgsConstructor
@NoArgsConstructor
@ApiModel
@TableName("mall_feedback")
public class MallFeedback extends BaseEntity<MallFeedback>{
    private static final long serialVersionUID = 1L;


    /** $column.columnComment */
    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "ID")
    private Long id;


    /** 用户表的用户ID */
    @Excel(name = "用户ID",sort = 1)
    @ApiModelProperty(value= "用户表的用户ID")
    @TableField("`user_id`")
    private Long userId;


    /** 用户名称 */
//    @Excel(name = "用户名称")
    @ApiModelProperty(value= "用户名称")
    @TableField("`username`")
    private String username;


    /** 手机号 */
    @Excel(name = "手机号码",sort = 2)
    @ApiModelProperty(value= "手机号")
    @TableField("`mobile`")
    private String mobile;


    /** 反馈类型 */
//    @Excel(name = "反馈类型")
    @ApiModelProperty(value= "反馈类型")
    @TableField("`feed_type`")
    private String feedType;


    /** 反馈内容 */
    @Excel(name = "反馈内容",sort = 3)
    @ApiModelProperty(value= "反馈内容")
    @TableField("`content`")
    private String content;


    /** 状态 */
    @Excel(name = "处理状态",sort = 6,readConverterExp = "0=未处理,1=已处理")
    @ApiModelProperty(value= "状态")
    @TableField("`status`")
    private Integer status;


    /** 回复内容 */
    @Excel(name = "回复内容",sort = 5)
    @ApiModelProperty(value= "回复内容")
    @TableField("`reply`")
    private String reply;

    /** 回复时间 */
    @Excel(name = "回复时间",sort = 8, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value= "回复时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField("`reply_time`")
    private LocalDateTime replyTime;


    /** 是否含有图片 */
//    @Excel(name = "是否含有图片")
    @ApiModelProperty(value= "是否含有图片")
    @TableField("`has_picture`")
    private Integer hasPicture;


    /** 图片地址列表，采用JSON数组格式 */
    @ApiModelProperty(value= "图片地址列表，采用JSON数组格式")
    @TableField("`pic_urls`")
    private String picUrls;

    /** 处理结果图片地址列表，采用JSON数组格式 */
//    @Excel(name = "回复图片",sort = 6)
    @ApiModelProperty(value= "处理结果图片地址列表图片地址列表，采用JSON数组格式")
    @TableField("`deal_urls`")
    private String deals;

    /** 删除标志（0代表存在 2代表删除） */
    @TableLogic
    @TableField("`del_flag`")
    private String delFlag;

    @ApiModelProperty("反馈时间")
    @Excel(name = "反馈时间", sort = 7, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    private LocalDateTime feedbackTime;

    /** 租户ID */
//    @Excel(name = "租户ID")
    @ApiModelProperty(value= "租户ID")
    @TableField("`tenant_id`")
    private Long tenantId;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    @ApiModelProperty(value= "开始时间")
    private LocalDateTime startTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    @ApiModelProperty(value= "结束时间")
    private LocalDateTime endTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    @ApiModelProperty(value= "回复开始时间")
    private LocalDateTime replyStartTime;

    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(exist = false)
    @ApiModelProperty(value= "回复结束时间")
    private LocalDateTime replyEndTime;

}
